MPSK equalizer

ABSTRACT

Methods and circuits for equalizers using a trellis having a reduced number of states and employing a partial retrace and tentative trace back procedure that simplifies the circuitry needed to perform metric calculations and to store the results. Exemplary embodiments also provide soft decisions. These soft decisions may be adaptively scaled by the estimated signal to noise ratio (SNR). Initial and final states may be programmably designated.

CROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. provisional application No. 60/322,367, filed Sep. 11, 2001, and U.S. provisional application No. 60/329,597, filed Oct. 15, 2001, both of which are incorporated by reference.

BACKGROUND

[0002] The present invention relates to maximum likelihood sequence estimators utilized by receivers in communications systems to mitigate intersymbol interference caused by dispersive communication channels.

[0003] A well known problem in communication systems is intersymbol interference induced on a digital communication waveform by dispersive properties of a transmission channel.

[0004] In most wireless communication systems, a transmitter radiates its output signal in multiple directions. This radiated signal reflects off buildings, windows, and other surfaces. A receiver therefore receives data that has traveled via a variety of routes. For example, an individual transmitted symbol may reach the receiver by traveling in a straight line, by reflecting off a building, and by first reflecting off a body of water. This means that the same symbol travels from transmitter to receiver by at least three paths. This is referred to as multipath.

[0005] The result of multipath is that each symbol is in effect smudged in time, that is, each symbol sent by the transmitter blurs into adjacent symbols. Therefore, the received waveform at any given time is dependent on some number of previous symbols. This is known as intersymbol interference.

[0006] A class of equalizers, known as Maximum Likelihood Sequence Estimators (MLSE) has been developed to correct this intersymbol interference. Many of these equalizers incorporate what is known as the Viterbi Algorithm for use in determining the most likely data sequence sent by a transmitter. But this Algorithm is very computationally intensive and requires a great deal of memory which must be integrated onto a VLSI chip designed to include an MLSE. Therefore, what is need are improvements resulting in reduced memory requirements and simpler computational complexity, without sacrificing accuracy. Soft outputs that indicate the reliability of the result and that can be scaled are also desirable.

SUMMARY

[0007] Accordingly, exemplary embodiments of the present invention provide an equalizer using a trellis having a reduced number of states and employing a partial retrace and tentative trace back procedure that simplifies the circuitry needed to perform metric calculations and to store the results. Exemplary embodiments also provide soft decisions. These decisions may be adaptively scaled by the estimated signal to noise ratio (SNR). Also, initial and final states may be programmably designated.

[0008] An exemplary embodiment of the present invention provides a method of receiving data. The method includes receiving input data with an equalizer, performing forward metric computations using a reduced state trellis, performing backward metric computations using the reduced state trellis, adding the forward metric computations to the backward metric computations to generate a joint metric, and selecting a minimum joint metric for each symbol in the reduced state trellis.

[0009] Another exemplary embodiment of the present invention provides a method of receiving data. This method includes receiving input data with an equalizer, determining an estimated signal to noise ratio, generating a soft decision indicating the reliability of a hard decision, and scaling the soft decision with the estimated signal to noise ratio.

[0010] Yet a further exemplary embodiment of the present invention provides an integrated circuit. The integrated circuit includes an equalizer configured to receive input data and provide hard and soft decisions, and an adaptive scaling factor circuit coupled to the equalizer. The adaptive scaling factor circuit provides a signal related to an estimated signal to noise ratio, and the equalizer scales the soft decisions based on the provided signal.

[0011] A better understanding of the nature and advantages of the present invention may be gained with reference to the following detailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is a block diagram illustrating a portion of a receiver including an equalizer consistent with embodiments of the present invention;

[0013]FIG. 2 is a flow chart illustrating the functions of an equalizer, such as the equalizer in FIG. 1 or similar equalizers in other embodiments of the present invention;

[0014]FIG. 3 is a chart showing the parameters used to initialized an equalizer in a specific embodiment of the present invention;

[0015]FIG. 4 is a flow chart illustrating a forward trace procedure that may be used by embodiments of the present invention;

[0016]FIG. 5 shows two stages of a conventional Viterbi trellis;

[0017]FIG. 6 illustrates the equations used to calculate metrics by a specific embodiment of the present invention;

[0018]FIG. 7 is a further illustration of these equations as applied to the left side data;

[0019]FIG. 8 is a further illustration of these equations as applied to the right side data;

[0020]FIG. 9A illustrates a tentative trace back memory that is used by a specific embodiment of the present invention, and FIG. 9B illustrates a tentative hard decision register that is used to store tentative hard decisions by that embodiment;

[0021]FIG. 10 is a block diagram of a five tap feed-forward finite impulse response filter that forms a portion of a pre-filter in a specific embodiment of the present invention;

[0022]FIG. 11 is a block diagram of a five tap feed back FIR filter that forms another portion of the pre-filter in the specific embodiment of the present invention;

[0023]FIG. 12 is a flowchart illustrating a backward trace performed by an embodiment of the present invention;

[0024]FIG. 13 is an illustration of a backward trace consistent with an embodiment of the present invention;

[0025]FIG. 14 illustrates the equations used for final hard and soft decisions by an embodiment of the present invention;

[0026]FIG. 15 provides a table for format mapping that is used by a specific embodiment of the present invention; and

[0027]FIG. 16 is a table showing the mapping of modulating bits to a symbol that is used by a specific embodiment of the present invention.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

[0028]FIG. 1 is a block diagram illustrating a portion of a receiver including an equalizer consistent with embodiments of the present invention. This figure, as with all the included figures is shown for exemplary purposes only, and does not limit either the possible embodiments of the present invention or the claims.

[0029] Included are a sample capture circuit 110, derotation circuit 120, pre-filter 130, equalizer 140, frequency estimator 150, channel estimator 160, coefficients computer 170, noise variance circuit 180, and adaptive scaling factor circuit 190. The sample capture circuit 110 receives an input RXIN on line 105 and provides samples to the derotation block 120. While embodiments of the present invention are useful in many applications such as wireless communication, recording, and the like, it is of particular value in GSM or EDGE receivers. Accordingly, in a specific embodiment, RXIN is a burst signal that is consistent with the GSM or EDGE standards. Also, the specific embodiment substantially implements the equalizer in hardware, while a substantial portion of the remaining circuits are implemented in software.

[0030] In this specific embodiment, for each received burst, 156 real and imaginary samples are buffered for further processing. Each sample is a 12-bit word that is sign extended to 16 bits by the baseband finite impulse response (FIR) filter. The received samples are expressed as: Real part of a burst: x_(i), i = 0, . . . , 155. Imaginary part of a burst: y₁, i = 0, . . . , 155.

[0031] The received samples are derotated by the derotation circuit 120. Specifically, phase errors associated with the incoming signals are reduced or eliminated, and an 8psk phase derotation of 3π/8 radians per symbol is applied. In the specific embodiment, the resultant 156 real and imaginary rotated samples, I and Q, remain 16-bit words. The received samples may be derotated by the following procedure:

[0032] A sine table is generated: ${{{Table}(i)} = {{round}\left( {2^{15}*{\sin \left( {2*\pi*\left( {\frac{i}{512} + \frac{1}{1024}} \right)} \right)}} \right)}},{i = 0},1,\ldots \quad,511.$

[0033] The look-up sine table is used:

δ=(2¹⁹+ceil((−0.1875−{circumflex over (Δf)}/r _(s))*2¹⁹))mod 2¹⁹,

cos(θ)=Table(fix(δ*i/1024+128)mod 512),

sin(θ)=Table(fix(δ*i/1024)mod 512),

[0034] where {circumflex over (Δf)} is estimated frequency offset. r_(s) is the symbol rate with the value of 13/48 MHz. i=0, 1, . . . , 155.

[0035] The incoming samples are then derotated:

I _(i)=(x _(i)*cos(θ)−y _(i)*sin(θ))>>15,

Q _(i)=(x _(i)*sin(θ)+y _(i)*cos(θ))>>15,

[0036] where i=0, 1, . . . , 155.

[0037] The frequency offset is the difference between the frequency of the received data and a local clock available to the receiver. An example of a frequency estimator 150 and derotation circuit 120 may be found in co-pending U.S. patent application Ser. No. 10/______, titled Frequency Offset Correction Circuit for WCDMA, filed Aug. 26, 2002, which is incorporated by reference.

[0038] Again, in GSM systems, signals are transmitted by bursts. The wireless channel can be considered to be quasi-stationary within a burst. For such a channel, its impulse response can be estimated during a training period. Based on the property of GSM training sequences, the center 16 symbols of the training sequence can be used for correlations of the received midamble to estimate the channel impulse response. With the 16 center training sequence symbols used as a local correlation reference, correlations can performed by the channel estimator 160 on the training sequence symbols of the real and imaginary samples I and Q as follows:

[0039] The following correlations are done: ${C_{i}^{I} = {\frac{1}{16}{\sum\limits_{j = 0}^{15}\quad {t_{5 + j}*I_{j + i + {start}}}}}},{i = 0},\ldots \quad,R$ ${C_{i}^{Q} = {\frac{1}{16}{\sum\limits_{j = 0}^{15}\quad {t_{5 + j}*Q_{j + i + {start}}}}}},{i = 0},\ldots \quad,R$

[0040] where (C_(i) ^(I), C_(i) ^(Q)) are real and imaginary parts of correlations. t_(i) is the ith symbol of the training sequence. start=70−R/2. Typically, R=14.

[0041] The set of m contiguous correlations that have maximum energy are selected and designated as the estimated channel. ${E_{i} = {\sum\limits_{j = 0}^{m - 1}\left\{ {\left\lbrack C_{i + j}^{I} \right\rbrack^{2} + \left\lbrack C_{i + j}^{Q} \right\rbrack^{2}} \right\}}},{i = 0},\ldots \quad,{R - m - 1}$ $E_{i^{*}} = {{\max\limits_{{all}\quad i}\left\{ E_{i} \right\}} = S_{0}}$

[0042] where i* is the timing offset. Typically, m=7.

[0043] After finding the maximum value S₀, the kth path (h_(k) ^(I), h_(k) ^(Q)) of the estimated channel impulse response can be obtained as follows:

h _(k) ^(I) =C _(k+i*) ^(I), real part

h _(k) ^(Q) =C _(k+i*) ^(Q), imaginary part,

[0044] in which k=0, . . . , m−1.

[0045] The noise variance circuit 180 receives the derotated input signal, determines the noise variance, and provides it to the adaptive scaling factor circuit 190. The received signal noise variance σ² can be estimated by passing the midamble through estimated complex channel impulse response and subtracting from the received midamble to obtain the estimated complex noise sequence. The noise sequence power is then averaged over 16 samples to obtain the variance estimate. ${{\hat{I}}_{i}^{t} = {\sum\limits_{j = 0}^{m - 1}{t_{i + 6 - m + j}*h_{m - 1 - j}^{I}}}},{i = 0},\ldots \quad,16$ ${{\hat{Q}}_{i}^{t} = {\sum\limits_{j = 0}^{m - 1}{t_{i + 6 - m + j}*h_{m - 1 - j}^{Q}}}},{i = 0},\ldots \quad,16$

 n _(i) ^(I) =Î _(i) ^(t) −I _(i+i*+start−m+1) , i=0, . . . , 16

n _(i) ^(Q) ={circumflex over (Q)} _(i) ^(t) −Q _(i+i*+start−m+1) , i=0, . . . , 16 ${\sigma^{2} = {{\frac{1}{16}{\sum\limits_{i = 0}^{16}\left( n_{i}^{I} \right)^{2}}} + \left( n_{i}^{Q} \right)^{2}}},$

[0046] where t_(j) is the training sequence (26 bits for normal burst, 64 bits for SCH burst).

[0047] The coefficients computer 170 generates and provides pre-filter coefficients to the pre-filter 130 and S parameters to the equalizer 140. The pre-filter coefficients and S-parameters are calculated based on the following equations:

[0048] S-parameters:

S=[1 b ₁ b ₂], for 64 state MLSE equalizer

[0049] Feedback filter coefficients:

B=[b ₁ b ₂ b ₃ b ₄ b ₅ ]=−P ⁻¹ q

[0050] Feed-forward-filter coefficients:

W ^(T)=[0_(1,d) 1b ^(T) 0_(1,5−d) ]·H ^(T)(HH ^(T)+σ²)⁻¹

[0051] Mean square error:

mse=p−q ^(T) P ⁻¹ q

[0052] where σ² is the estimated noise variance. $H = {{\begin{bmatrix} h_{0} & \cdots & h_{6} & \cdots & 0 \\ \quad & ⋰ & \quad & \quad & \quad \\ \quad & \quad & h_{0} & \cdots & h_{6} \end{bmatrix}\left\lbrack \quad \begin{matrix} p & q \\ q & P \end{matrix} \right\rbrack}\quad = \quad {\left\lbrack {0_{6,d}I_{6}0_{6,{5 - d}}} \right\rbrack \cdot {\left( {I + {H^{T}\sigma^{- 2}H}} \right)^{- 1}\begin{bmatrix} 0_{6,d}^{T} \\ I_{6} \\ 0_{6,{5 - d}}^{T} \end{bmatrix}}}}$

[0053] h_(i), i=0, . . . , 6, is the estimated channel profile.

[0054] After obtaining the coefficients and S-parameters, they are transferred to integer values by the following:

S-parameters: S _(int)=round(S×128)

Feedback filter: B _(int)=round(B×128)

Feed-forward filter: W _(int)=round(W×2¹⁷×7)

[0055] More on these calculations can be found in Paul A. Voois, Inkyu Lee and John M. Cioffi, “The effect of decision delay in the finite-length decision feedback equalization”, IEEE Trans. Information Theory, Vol. 42, No. 2, March 1996, which is incorporated by reference.

[0056] The calculation of the DFE coefficients accounts for both forward and time-reverse equalization. The selection of the DFE direction is based on the MMSE. More on this can be found in Hanks H. Zeng, Ye (Geoffrey) Li, etc. “A 2-stage soft-output equalizer for EDGE”, IEEE WCNC 2000, which is incorporated by reference.

[0057] The adaptive scaling factor circuit 190 receives the noise variance σ² and provides a scaling factor δ to the equalizer 140. The pre-filter 130 receives the derotated samples and provides an output to the equalizer 140. The equalizer 140 receives the pre-filtered, derotated samples, the S parameters, and the adaptive scaling factor, as well as initial state information, and provides hard decisions on lines 142 and soft decisions on lines 144 to a channel decoder. The hard decisions on line 142 are also provided to the frequency estimator 150.

[0058]FIG. 2 is a flow chart illustrating the functions of an equalizer, such as the equalizer 140 in FIG. 1 or similar equalizers in other embodiments of the present invention. In act 210, the equalizer is initialized. In act 220, the forward trace is performed. This involves calculating the forward trace metrics, doing tentative trace backs, and generating tentative hard decisions. When the forward trace is complete, a backward trace is commenced in act 230. This backward trace or trace back includes calculating the backward trace metrics, generating soft decisions, scaling those soft decisions, transforming the format of the data, and calculating the 8PSK symbols that were received. It will be appreciated by one skilled in the art that this flow may be modified consistent with embodiments of the present invention. For example, the soft decision computations may be performed during the forward trace. Alternately, the symbol calculations may be completed following the backward trace.

[0059]FIG. 3 is a chart showing the parameters used to initialized the equalizer 140 during act 210. The equalizer receives data indicating the length of the data bursts, for example, the length of the burst is 62 symbols for EDGE. The equalizer also receives left-hand and right-hand data, that is, data preceding and subsequent to the midamble training bits. Again, the equalizer receives the S parameters and soft outputs metrics scale factor. Exemplary word sizes are given in column 310 for a specific embodiment of the present invention.

[0060]FIG. 4 is a block diagram illustrating the forward trace 220 of FIG. 2, and similar forward trace procedures in other embodiments of the present invention. In act 410, the accumulated distance metrics at each state of the trellis are initialized. This initialization may include setting the metrics at all states equal to zero. Alternately, the initial metrics at some states may be set to a very high value, such that later-selected best paths do not terminate at that state. These invalid states may be determined by an initial state and initial state mask, or by knowing the identity of tail or training symbols. The valid or invalid initial and final states may be programmably selected. An example of using initial and final symbols can be found in co-pending application Ser. No. 09/636,000, titled Maximum Likelihood Sequence Estimator Which Computes Branch Metrics in Real Time, filed Aug. 9, 2000, which is incorporated by reference.

[0061] In act 420 the branch metrics for each state are calculated. Accumulated metrics are calculated for each state in act 430. By using a reduced state trellis and calculating partial ISIs, the complexity of these operations and the circuitry required can be greatly reduced.

[0062] To illustrate this, FIG. 5 shows two stages of a conventional Viterbi trellis. For an EDGE application, a full trellis includes 62 stages, only two are shown for clarity. In this particular example, the constraint length, or a channel memory length is 5 symbols long. That is, intersymbol interference is such that four preceding symbols interfere with, or effect the value of a current symbol. Also in this particular example, each symbol is one of eight, that is, the alphabet includes 8 symbols. This means that each symbol corresponds to 3 bits.

[0063] The state of the channel can thus be described as a series of five symbols. Specifically, the currently received symbol plus the 4 previous and interfering symbols. As the next symbol is received, the previously received symbol is now an interfering symbol, and the last of the previously interfering symbols is no longer needed to define the channel.

[0064] Specifically, at stage K+1 510 in FIG. 5, a received symbol 520 may be a zero. In that case, states 530 at stage K 540 are the possible predecessor states. For example state 550 could have been the previous state, that is, its corresponding branch may have the lowest distance metric. As a new symbol having a value of 0 is received, the 4 previously received zeros are interfering symbols, and the symbol 6 is no longer required to define the state K+1.

[0065] The drawback of this simple approach is that at each stage there is 8 to the power of five, or 32,786 states. Each current state and has 8 possible predecessor states. During the forward trace, for each current state, the accumulated metrics for each of the 8 to incoming branches are compared, and the lowest is selected. Accordingly, this approach requires storing accumulated metrics for all 32,786 states.

[0066] In a specific embodiment of the present invention, the channel constraint or memory L is equal to five and the alphabet is 8. But instead of 32,786 states, the trellis has a reduced number, for example, there are 64 states in a specific embodiment. In a full trellis, branch metrics are added to previous state metrics, and a comparison is made. In a reduced state trellis, best path metrics are added to a previous state metric.

[0067] Specifically, an accumulated metric J_(k) (which in one embodiment is 16 unsigned bits) at a given state at time k can be expressed as $\begin{matrix} \begin{matrix} {\quad {J_{k} = {{\min\limits_{a_{k - 2}}\left\{ {J_{k - 1} + M_{k}} \right\}} - J_{k - 1}^{\min}}}} \\ {\quad {{J_{k} = 65535},{{{if}\quad J_{k}} > 65535.}}} \\ {\quad {J_{k}^{\min} = {\min\limits_{\underset{{at}\quad {time}\quad k}{{all}\quad {states}}}\left( J_{k} \right)}}} \end{matrix} & \left( {{Equation}\quad 1} \right) \end{matrix}$

[0068] Where J_(k) ^(min) is the minimum value among all state accumulated metric at time k−1. n=0 . . . 7, corresponding to index of 8 possible values of a_(k−2). The branch metric is defined as:

M _(k) =|D _(k)|² $\left. \begin{matrix} {D_{k} = \left( {r_{k} - {\sum\limits_{i = 0}^{2}{a_{k - 1}s_{l}}} - {\overset{\sim}{r}}_{k}} \right.} \\ {{\overset{\sim}{r}}_{k} = {\sum\limits_{l = 3}^{5}{{\overset{\sim}{a}}_{k - l}s_{l}}}} \\ {D_{k} = {\begin{Bmatrix} {\quad {{127\quad {if}\quad D_{k}} > 127}} \\ {\quad {{{- 127}\quad {if}\quad D_{k}} < {- 127}}} \end{Bmatrix}.}} \end{matrix} \right)\operatorname{>>}6.$

[0069] Where s_(i)={s_(i) ^(I),s_(i) ^(Q)}, i=0,1, . . . , 5.

[0070] r_(i)={r_(i) ^(I),r_(i) ^(Q)}, i=0,1, . . . , 62, received signals

[0071] {tilde over (r)}_(i)={{tilde over (r)}_(i) ^(I),{tilde over (r)}_(i) ^(Q)}, i=0,1, . . . , 62, reconstructed partial ISI.

[0072] a_(i)={a_(i) ^(I),a_(i) ^(Q)}, an 8PSK constellation point.

[0073] d_(i)=0, 1, . . . , 7, hypothesized data sequence associated with a state or trellis branch.

[0074] ‘*’ represents the conjugate.

[0075] ã_(i) is the tentative hard decision or the initial feedback symbol. ã_(k−3) is the symbol corresponding to the state that has the minimum accumulated metric at time k−1 and ã_(k−5) is the symbol tracing back one step from the current state.

[0076] In act 440, the branches having the smallest metric at each state are selected. For a given trellis with L memories, in one example 5, there are the 8^(L−1) best paths through branch k−1, denoted by {tilde over (d)}₁{tilde over (d)}₂ . . . {tilde over (d)}_(k−L)d_(k−(L−1 )) . . . d_(k−1), where d_(k−(L−1)) . . . d_(k−1) denotes one of the 8^(L−1) state vectors and {tilde over (d)}₁{tilde over (d)}₂ . . . {tilde over (d)}_(k−L) are the best path “memories” or tentative decision for that state. Given the corresponding path metrics to the point, J_(k−1)(d_(k−1), . . . , d_(k−(k−1))), the best paths to each state through branch k are determined by the following minimization, ${J_{k}\left( {d_{k},d_{k - 1},\ldots \quad,d_{k - {({L - 2})}}} \right)} = {\min \begin{Bmatrix} {{J_{k - 1}\left( {d_{k - 1},\ldots \quad,d_{k - {({L - 2})}},0} \right)}, +} \\ {{M_{k}\left( {{r_{k}:d_{k}},d_{k - 1},\ldots \quad,d_{k - {({L - 2})}},0} \right)},} \\ \ldots \\ {{J_{k - 1}\left( {d_{k - 1},\ldots \quad,d_{k - {({L - 2})}},7} \right)} +} \\ {{M_{k}\left( {{r_{k}:d_{k}},d_{k - 1},\ldots \quad,d_{k - {({L - 2})}},7} \right)},} \end{Bmatrix}}$

 d_(k)=0,1, . . . 7

{tilde over (J)}_(k)=J_(k)>>3

{tilde over (J)}_(k)=4095, if {tilde over (J)}_(k)>4095 (unsigned 12 bits).

[0077] If the ith branch has the minimum value, the resulting path memory symbol is {tilde over (d)}_(k−(L−1))=i for the given state. In a specific embodiment of the present invention, this value is stored in a tentative trace back to memory.

[0078] After obtaining J_(k), a specific embodiment downshift it by 3 bits and saves it as a 12 bit word to a trace back memory for future use. In the specific embodiment, the size of the trace back memory is 58×64×12, where 58 is at the number of stages in the trellis, 64 is the number of state at each stage, and this memory is shared with the GSM equalizer traceback memory. In this embodiment, the valid states are initialized to zero, otherwise they are given a value of 16383.

[0079] The above is used to make tentative hard decisions in act 450. The above acts 420-450 are repeated for each stage of the trellis.

[0080]FIG. 6 illustrates the above equations. During a previous state 610, hard decisions ã_(k−5) 630, ã_(k−4) 632, and ã_(k−3) 634 are used to calculate {tilde over (r)}_(k) as indicated at 640. This value is used at the current stage 620 to determined the state having the minimum accumulated distance 650. The current hard decision for that state is found 660. A partial trace back 670 is performed to find hard decisions ã_(k−2) 680, ã_(k−3) 682, and ã_(k−4) 684. These hard decisions are then used to calculate {tilde over (r)}_(k+1) as indicated at 690. This value is then used at the next stage to determined the state having the minimum accumulated distance.

[0081] A specific embodiment of the present invention uses a 58×15-bit memory to store the partial reconstructed ISIs {tilde over (r)}₀ through {tilde over (r)}₅₈. These are stored for use to calculate the branch metrics during the backward trace. To save memory, a specific embodiment stores r_(k)−{tilde over (r)}_(k) in the received memory.

[0082]FIG. 7 is a further illustration of these equations as applied to the left side data. A specific embodiment of the present invention separates the left side data from the right side data and processes them as two separate trellis computations. At k=0, the previous tail bits are known and can be used to calculate {tilde over (r)}₀. The hard decision for each state at stage 0 is saved. At this time, there is no need to perform a trace back since the tail bits are known. At time k=1, {tilde over (r)}₁ is calculated and is used to determined the hard decision for each state at stage 1. At time k=2, {tilde over (r)}₂ is calculated and is used to determined the hard decision at each state of stage 2. A trace back is done to find {tilde over (d)}₀. At time k=3, {tilde over (r)}₃ is calculated and is used to determined the hard decision at each state of stage 3. A trace back is done to find {tilde over (d)}₀ and {tilde over (d)}₁. This process continues to the end of the trellis as indicated.

[0083]FIG. 8 is a further illustration of these equations as applied to the right side data. At k=0, the previous tail bits are known and can be used to calculate r₀. The hard decision for each state at stage 0 is saved. At this time, there is no need to perform a trace back since the tail bits are known. At time k=1, {tilde over (r)}₁ is calculated and is used to determined the hard decision for each state at stage 1. At time k=2, {tilde over (r)}₂ is calculated and is used to determined the hard decision at each state of stage 2. A trace back is done to find {tilde over (d)}₀. At time k=3, {tilde over (r)}₃ is calculated and is used to determined the hard decision at each state of stage 3. A trace back is done to find {tilde over (d)}₀ and {tilde over (d)}₁. This process continues to the end of the trellis as indicated.

[0084]FIG. 9A illustrates a tentative trace back memory that is used by a specific embodiment of the present invention. FIG. 9B illustrates a tentative hard decision register that is used to store tentative hard decisions by that embodiment.

[0085]FIG. 10 is a block diagram of a five tap feed-forward finite impulse response (FIR) filter that forms a portion of the pre-filter 130 in a specific embodiment of the present invention. Included are delay elements 1010, 1012, 1014, and 1016, multipliers 1020, 1022, 1024, 1026, and 1028, and adder 1030. Data it is received on line 1005, delayed, multiplied, and added as indicated.

[0086]FIG. 11 is a block diagram of a five tap feed back FIR filter that forms another portion of the pre-filter 130 in the specific embodiment of the present invention. Included are summing junctions 1110, 1160, 1170, and 1180, tentative hard decision circuit 1120, PSK demodulator 1130, delay blocks 1140, 1142, 1144, 1146, and 1148, multipliers 1150, 1152, 1154, 1156, and 1158. The input signal from the feed forward filter is received on line 1105. The output of the five tap feed back filter is subtracted from the input signal by summing junction 1110. Tentative hard decisions are made, and demodulated before being received by the input of the five tap feed back filter. Summing junction 1170 provides {tilde over (r)}_(k), which is subtracted from the received signal by summing junction 1118 and stored to memory as described above.

[0087]FIG. 12 is a flowchart illustrating a backward trace, such as the backward trace 230 in FIG. 2, performed by an embodiment of the present invention. In act 1210, the accumulated distance metrics at each state are initialized. In act 1220, the branch metrics for each state are calculated. The accumulated metrics for each state are calculated in act 1230. In act 1240, a soft decision is computed for each symbol. This can be done by adding the forward and the backward trace metrics, selecting the minimum, and calculating resulting hard decision and reliability of that hard decision. In act 1250, the soft decision is scaled. Additionally, the format may be transformed in act 1260, and an 8PSK symbol calculated in act 1270. This sequence is repeated through each stage of the trellis, beginning at the last stage and moving backward through the trellis.

[0088]FIG. 13 is an illustration of a backward trace consistent with an embodiment of the present invention. The backward trace starts at time k=58. The initial value of the accumulated distance is 0 for all states. Alternately, valid and invalid state may be initialized with different values. The accumulated metric for a given state at time k can be calculated using Equation 1 from above. The partial ISI {tilde over (r)}_(k) that was previously obtained and stored may be used in this calculation.

[0089] After obtaining all 64 accumulated distances at time k, the final hard decision and corresponding soft decision or reliability may be found. First, the symbol reliability may be found:

[0090] For a given symbol d, there are 8 states x_(i)=d*8+i, i=0, 1, . . . 7.

[0091] Calculate 8 accumulated distances based on the following equation:

J _(k)(x _(i))=Ĵ _(k−1) ^(F)(x _(i))+Ĵ _(k) ^(B)(x _(i))

[0092] where Ĵ_(k) ^(F) is the scaled accumulated distance of the forward trace stored in the trace back memory.

[0093] Ĵ_(k) ^(B)=J_(k) ^(B)>>3: the scaled accumulated distance of the backward trace.

[0094] Ĵ_(k) ^(B)=4095, if Ĵ_(k) ^(B)>4095 (unsigned 12 bits).

[0095] Select the one that has the minimum accumulated distance as the reliability of the symbol d, denoted as P(d).

[0096] Second, the bit hard decision and its reliability may be found:

[0097] An 8PSK symbol d can be represented by three bits, b₀, b₁, and b₂. Bit 0: S_O = |min(P(0), P(1), P(2), P(3)) − min(P(4), P(5), P(6), P(7))| If min (P(0), P(1), P(2), P(3)) < min(P(4), P(5), P(6), P(7)), then b₀ = 0; Else b₀ = 1. Bit 1: S_1 = |min(P(0), P(1), P(4), P(5)) − min(P(2), P(3), P(6), P(7))| If min(P(0), P(1), P(4), P(5)) < min(P(2), P(3), P(6), P(7)), then b₁ = 0; Else b₁ = 1. Bit 2: S_2 = |min(P(0), P(2), P(4), P(6)) − min(P(1), P(3), P(5), P(7))| If min(P(0), P(2), P(4), P(6)) < min(P(1), P(3), P(5), P(7))|then b₂ = 0; Else b₂ = 1

[0098]FIG. 14 illustrates the above equations. Each state at stage K has 8 incoming branches 1410. For each symbol, there are 8 states 1420. The branch with the minimum accumulated distance is selected and saved as the backward metric at each state. Again, {tilde over (r)}_(k) stored during the forward trace may be used for this. This backward trace metric is combined with the stored forward metric for each state. The minimum joint metric for each symbol is found. This is done for each symbol. The hard and soft decisions are then calculated using the above equations.

[0099] The underlying rationale for these equations can be seen from chart 1430 in FIG. 14. If the symbol is more likely a 0, 1, 2, or 3 than a 4, 5, 6, or 7, then bit b₀ is more likely a zero than a one.

[0100] The soft scaling factor δ is provided by the adaptive scaling factor circuit 190 in FIG. 1, or similar circuits in other embodiments of the present invention. Let x be the un-scaled soft-decision. The scaling procedure is as follows:

[0101] If δ=1, x=x+(x>>1); $x = \begin{Bmatrix} {x\operatorname{>>}{{{NSF}\quad {if}\quad {NSF}} > 0}} \\ {{x{\operatorname{<<}{NSF}}\quad {if}\quad {NSF}} < 0} \end{Bmatrix}$

[0102] x=7, if x>7.

[0103] where NSF is the value of δ stored in a register by the adaptive soft scaling factor circuit 190. In this way, the soft decisions can be scaled by the estimated signal to noise ratio.

[0104] The soft scaling factor can be calculated by:

[0105] Calculate the gain of the pre-filter: P_(pre) by taking the sum of the squares of F0-F4 provided by the coefficients computer 170 and used by the pre-filter 130 in the receiver of FIG. 1.

[0106] Get noise variance: σ², for example, using the method above. Then:

[0107] Let P=Q_(scale)σ²P_(pre). P can be represented as:

[0108] P=b_(m)2^(m)+b_(m−1)2^(m−1)+ . . .

[0109] Let shift1=m−8;

[0110] Let P₁=P>>shift1;

[0111] P₁Q_(spcae)=b_(n)2^(n)+b_(n−1)2^(n−1)+ . . .

[0112] Shift2=n+1 ;

[0113] Sft=(shift1+shift2+1)>>1; ${shift\_ half} = \left\{ {\begin{matrix} {0\quad {if}} \\ {1\quad {if}} \end{matrix}\begin{matrix} {{{shift}1} + {{{shift}2}\quad {is}{\quad \quad}{even}}} \\ {{{shift}1} + {{{shift}2}\quad {is}\quad {odd}}} \end{matrix}}\quad \right.$

[0114] sft=sft−4;

[0115] sft=sft*2+shift_half

[0116] δ=(sft, shift_half)

[0117] where (sft, shift_half) is sft and shift_half concatenated, and Q_(scale) and Q_(space) are parameters for the desired soft-decision quantization steps in noise s.d. units. Simulations have shown that for a specific embodiment of the present invention, they are optimally set at (Q_(scale), Q_(space))=(4, 3). Also in the specific embodiment, the soft decision scaling is done in hardware, while the soft scaling factor is calculated in software.

[0118] After scaling, the soft decision and hard decision can be converted into a format consistent with a conversion table. FIG. 15 provides a table for format mapping that is used by a specific embodiment of the present invention. The third column in the table indicates the actual metric values used internally by the convolutional decoder. The conversion table illustrates that no erasures (zero convolutional decoder metric) are generated in the convolutional decoder by the equalizer soft decisions. The three soft decisions, with their hard decisions, may be concatenated or otherwise combined to form a 12 bit soft decision representing an 8PSK symbol. The resulting word may be saved in an output memory.

[0119] The hard decision bits may be converted back to 8PSK to calculate the branch metrics at the next stage of the trellis during the backward trace. This can be done in two steps. First, the bits are mapped to a symbol as indicated by FIG. 16.

[0120] Second, the modulating bits are Gray mapped in groups of three into 8PSK symbols by

a_(i)=e^(j2πd) ^(_(i)) ^(/8)

[0121] where d_(i) is given by FIG. 16, and a_(i) is a complex variable. Accordingly, this is converted to an integer for use in an actual implementation. This may be done using a look-up table;

[0122] M8PSK={7, 5, 0, −5, −7, −5, 0, 5}

[0123] a_(i) ^(I)=M8PSK[d_(i)]

[0124] a_(i) ^(Q)=M8PSK[(d_(i)+6)%8]

[0125] The foregoing description of specific embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form described, and many modifications and variations are possible in light of the teaching above. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. 

What is claimed is:
 1. A method of receiving input data comprising: receiving input data with an equalizer; performing forward metric computations using a trellis; performing backward metric computations using trellis, adding the forward metric computations to the backward metric computations to generate a joint metric; and selecting a joint metric for each symbol in the trellis.
 2. The method of claim 1 further comprising: determining the value of a hard decision by comparing a first joint metric for a first symbol to a second joint metric for a second symbol.
 3. The method of claim 2 further comprising: determining the value of a soft decision by subtracting a first joint metric for a first symbol from a second joint metric for a second symbol.
 4. The method of claim 3 further comprising: scaling the soft decision using an estimation of the signal to noise ratio.
 5. The method of claim 1 wherein the forward metric computations comprise: performing a partial traceback to generate a tentative hard decision.
 6. The method of claim 5 wherein the tentative hard decision is used to compute a partial ISI, and the partial ISI is saved for use when performing the backward trace metric calculations.
 7. The method of claim 1 wherein the trellis is a reduced state trellis.
 8. A method of receiving input data comprising: receiving input data with an equalizer; determining an estimated signal to noise ratio; generating a soft decision indicating the reliability of a hard decision; and scaling the soft decision with the estimated signal to noise ratio.
 9. The method of claim 8 wherein the soft decision is generated by: performing a forward trace using a trellis and storing resulting metrics for each state; performing a backward trace using the trellis and combining a resulting metric at each state with the store forward trace metric for that state; selecting a joint metric for each symbol in the trellis; and determining the value of the soft decision by subtracting a first joint metric for a first symbol from a second joint metric for a second symbol.
 10. The method of claim 9 wherein the minimum joint metric for each symbol in the trellis is selected.
 11. The method of claim 9 wherein the forward trace comprises: performing a partial traceback to generate a tentative hard decision.
 12. The method of claim 11 wherein the tentative hard decision is used to compute a partial ISI, and the partial ISI is saved for use when performing the backward trace metric calculations.
 13. The method of claim 9 wherein the trellis is a reduced state trellis.
 14. The method of claim 9 further comprising: determining the value of a hard decision by comparing the first joint metric for a first symbol to the second joint metric for a second symbol.
 15. An integrated circuit comprising: an equalizer configured to receive input data and generate hard and soft decisions; and an adaptive scaling factor circuit coupled to the equalizer, wherein the adaptive scaling factor circuit provides a signal related to an estimated signal to noise ratio, and wherein the equalizer scales the soft decisions based on the provided signal.
 16. The integrated circuit of claim 15 further comprising: a noise variance circuit coupled to the adaptive scaling factor circuit, wherein the noise variance circuit provides a noise variance to the adaptive scaling factor circuit.
 17. The integrated circuit of claim 15 wherein the hard and soft decisions are generated by: performing a forward trace using a trellis and storing resulting metrics for each state; performing a backward trace using the trellis and combining a resulting metric at each state with the store forward trace metric for that state; selecting a joint metric for each symbol in the trellis.
 18. The integrated circuit of claim 17 wherein a soft decision is generated by subtracting a first joint metric for a first symbol from a second joint metric for a second symbol.
 19. The integrated circuit of claim 17 wherein a hard decision is generated by comparing a first joint metric for a first symbol to a second joint metric for a second symbol.
 20. The integrated circuit of claim 17 wherein the trellis is a reduced state trellis. 